home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 131 / XENIATGM131.iso / Shareware / openOffice.org 641 / Windows / f_0017 / tools.xba < prev   
Extensible Markup Language  |  2001-11-22  |  9KB  |  285 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
  3.  <script:module xmlns:script="http://openoffice.org/2000/script" script:name="tools" script:language="StarBasic">REM  *****  BASIC  *****
  4. Option Explicit
  5.  
  6.  
  7. Function SetProgressValue(iValue as Integer)    
  8.     If iValue = 0 Then
  9.         oProgressbar.End
  10.     End If
  11.     ProgressValue = iValue
  12.     oProgressbar.Value = iValue
  13. End Function
  14.  
  15.  
  16. Function GetPreferredWidth(oModel as Object, bGetMaxWidth as Boolean, Optional LocText)
  17. Dim aPeerSize as new com.sun.star.awt.Size
  18. Dim nWidth as Integer
  19. Dim oControl as Object
  20.     If Not IsMissing(LocText) Then
  21.         ' Label
  22.         aPeerSize = GetPeerSize(oModel, oControl, LocText)
  23.     ElseIf CurControlType = cImageControl Then
  24.         GetPreferredWidth() = 2000
  25.         Exit Function
  26.     Else
  27.         aPeerSize = GetPeerSize(oModel, oControl)
  28.     End If
  29.     nWidth = aPeerSize.Width
  30.     ' We increase the preferred Width a bit so that the control does not become too small
  31.     ' when we change the border from "3D" to "Flat"
  32.     GetPreferredWidth = (nWidth + 5) * XPixelFactor    ' PixelTo100thmm(nWidth)
  33. End Function
  34.  
  35.  
  36. Function GetPreferredHeight(oModel as Object, Optional LocText)
  37. Dim aPeerSize as new com.sun.star.awt.Size
  38. Dim nHeight as Integer
  39. Dim oControl as Object
  40.     If Not IsMissing(LocText) Then
  41.         ' Label
  42.         aPeerSize = GetPeerSize(oModel, oControl, LocText)
  43.     ElseIf CurControlType = cImageControl Then
  44.         GetPreferredHeight() = 2000
  45.         Exit Function
  46.     Else
  47.         aPeerSize = GetPeerSize(oModel, oControl)
  48.     End If
  49.     nHeight = aPeerSize.Height
  50.     ' We increase the preferred Height a bit so that the control does not become too small
  51.     ' when we change the border from "3D" to "Flat"
  52.     GetPreferredHeight = (nHeight+1) * YPixelFactor     ' PixelTo100thmm(nHeight)
  53. End Function
  54.  
  55.  
  56. Function GetPeerSize(oModel as Object, oControl as Object, Optional LocText)
  57. Dim oPeer as Object
  58. Dim aPeerSize as new com.sun.star.awt.Size
  59. Dim NullValue
  60.     oControl = oController.GetControl(oModel)
  61.     oPeer = oControl.GetPeer()
  62.     If oControl.Model.PropertySetInfo.HasPropertybyName("EffectiveMax") Then
  63.         If oControl.Model.EffectiveMax = 0 Then
  64.             ' This is relevant for decimal fields
  65.             oControl.Model.EffectiveValue = 999.9999
  66.         Else
  67.             oControl.Model.EffectiveValue = oControl.Model.EffectiveMax
  68.         End If
  69.         GetPeerSize() = oPeer.PreferredSize()    
  70.         oControl.Model.EffectiveValue = NullValue
  71.     ElseIf Not IsMissing(LocText) Then
  72.         oControl.Text = LocText
  73.         GetPeerSize() = oPeer.PreferredSize()    
  74.     ElseIf CurFieldType = com.sun.star.sdbc.DataType.BIT Then
  75.         GetPeerSize() = oPeer.PreferredSize()    
  76.     ElseIf CurFieldType = com.sun.star.sdbc.DataType.DATE Then
  77.         oControl.Model.Date = Date
  78.         GetPeerSize() = oPeer.PreferredSize()
  79.         oControl.Model.Date = NullValue
  80.     ElseIf CurFieldType = com.sun.star.sdbc.DataType.TIME Then
  81.         oControl.Time = Time
  82.         GetPeerSize() = oPeer.PreferredSize()
  83.         oControl.Time = NullValue
  84.     Else
  85.         oControl.Text = Mid(SBSIZETEXT,1,oControl.MaxTextLen)
  86.         GetPeerSize() = oPeer.PreferredSize()
  87.         oControl.Text = ""
  88.     End If
  89. End Function
  90.  
  91.  
  92. Function TwipToCM(BYVAL nValue as long) as String
  93.     TwipToCM = trim(str(nValue / 567)) + "cm"
  94. End function
  95.  
  96.  
  97. Function TwipTo100telMM(BYVAL nValue as long) as long
  98.      TwipTo100telMM = nValue / 0.567
  99. End function
  100.  
  101.  
  102. Function TwipToPixel(BYVAL nValue as long) as long ' nur ungefaehre Berechnung
  103.     TwipToPixel = nValue / 15
  104. End function
  105.  
  106.  
  107. Function PixelTo100thMMX(oControl as Object) as long
  108.     oPeer = oControl.GetPeer()
  109.     PixelTo100mmX = Clng(Peer.GetInfo.PixelPerMeterX/100000)
  110.  
  111. '     PixelTo100thMM = nValue * 28                    ' nur ungef├ñhre Berechnung 
  112. End function
  113.  
  114.  
  115. Function PixelTo100thMMY(oControl as Object) as long
  116.     oPeer = oControl.GetPeer()
  117.     PixelTo100mmX = Clng(Peer.GetInfo.PixelPerMeterY/100000)
  118.  
  119. '     PixelTo100thMM = nValue * 28                    ' nur ungef├ñhre Berechnung 
  120. End function
  121.  
  122.  
  123. Function GetPoint(xPos, YPos) as New com.sun.star.awt.Point
  124. Dim aPoint as New com.sun.star.awt.Point
  125.     aPoint.X = xPos
  126.     aPoint.Y = yPos
  127.     GetPoint() = aPoint
  128. End Function
  129.  
  130.  
  131. Function GetSize(iWidth, iHeight) As New com.sun.star.awt.Size
  132. Dim aSize As New com.sun.star.awt.Size
  133.     aSize.Width = iWidth
  134.     aSize.Height = iHeight
  135.     GetSize() = aSize
  136. End Function
  137.  
  138.  
  139. Sub    ImportStyles()
  140. Dim OldIndex as Integer
  141.     If Not bDebug Then
  142.         On Local Error GoTo WIZARDERROR
  143.     End If
  144.     OldIndex = CurIndex
  145.     CurIndex = GetCurIndex(oDialogModel.lstStyles, Styles(), NumberofStyles,8)
  146.     If CurIndex <> OldIndex Then    
  147.         ToggleLayoutPage(False)
  148.         SetImportStyle()
  149.         ToggleOptionButtons(oDialogModel, bWithBackGraphic)    
  150.         ToggleLayoutPage(True, "lstStyles")    
  151.     End If
  152. WIZARDERROR:
  153.     If Err <> 0 Then    
  154.         Msgbox(sMsgErrMsg, 16, GetProductName())
  155.         Resume LOCERROR
  156.         LOCERROR:        
  157.     End If
  158. End Sub
  159.  
  160.  
  161. Sub SetImportStyle()
  162. Dim sImportPath as String
  163.     sImportPath = Styles(8,CurIndex)
  164.     bWithBackGraphic = LoadNewStyles(oDocument, oDialogModel, CurIndex, sImportPath, Styles(), TexturePath)
  165.     ControlCaptionsToStandardLayout()
  166. End Sub
  167.  
  168.  
  169. Function SetNumerics(ByVal oLocObject as Object, iLocFieldType as Integer) as Object    
  170.     Select Case iLocFieldType
  171.         Case com.sun.star.sdbc.DataType.BIGINT
  172.             oLocObOject.EffectiveMax = 2147483647 * 2147483647 
  173.             oLocbject.EffectiveMin = -(-2147483648 * -2147483648)
  174.             oLocObject.DecimalAccuracy = 0
  175.         Case com.sun.star.sdbc.DataType.INTEGER
  176.             oLocObject.EffectiveMax = 2147483647 
  177.             oLocObject.EffectiveMin = -2147483648
  178.         Case  com.sun.star.sdbc.DataType.SMALLINT
  179.             oLocObject.EffectiveMax = 32767 
  180.             oLocObject.EffectiveMin = -32768
  181.         Case com.sun.star.sdbc.DataType.TINYINT
  182.             oLocObject.EffectiveMax = 127
  183.             oLocObject.EffectiveMin = -128
  184.         Case com.sun.star.sdbc.DataType.FLOAT, com.sun.star.sdbc.DataType.REAL, com.sun.star.sdbc.DataType.DOUBLE, com.sun.star.sdbc.DataType.DECIMAL, com.sun.star.sdbc.DataType.NUMERIC
  185. '        oLocObject.Scale = 0
  186.         ' Todo: Hier sollte die Property "Scale" zusammen mit der Precision abgefragt werden, um die Nachkommastellen richtig darzustellen,
  187.         ' da ein EffectiveMax/EffectiveMin hier keinen Sinn macht
  188. '            oLocObject.DecimalAccuracy = FieldDecimalAccuracy%(n%) ' Nachkommastellen
  189.         Case com.sun.star.sdbc.DataType.CHAR, com.sun.star.sdbc.DataType.VARCHAR, com.sun.star.sdbc.DataType.LONGVARCHAR
  190.             If oLocObject.MaxTextLen = 0 Or oLocObject.MaxTextLen > 30 Then
  191.                 oLocObject.MaxTextLen = 30
  192.                 CurFieldLength = 30
  193.             Else
  194.                 oLocObject.MaxTextLen = CurFieldLength            
  195.             End If
  196. '            oLocObject.DefaultText = Mid(SBSIZETEXT,1,CurFieldLength)
  197.         Case com.sun.star.sdbc.DataType.DATE, com.sun.star.sdbc.DataType.TIME
  198. '            oLocObject.MaxTextLen = CurFieldLength
  199.     End Select
  200.     
  201. End Function
  202.  
  203.  
  204. ' Destroy all Shapes in Nirwana
  205. Sub RemoveShapes()
  206. Dim n as Integer
  207. Dim oControl as Object
  208. Dim oShape as Object
  209.     For n = oDrawPage.Count-1 To 0 Step -1
  210.         oShape = oDrawPage(n)
  211.         If oShape.Position.Y > -2000 Then
  212.             oDrawPage.Remove(oShape)
  213.         End If
  214.     Next n
  215. End Sub
  216.  
  217.  
  218. ' Note as Shapes cannot be removed from the DrawPage without destroying
  219. ' the object we have to park them somewhere in Nirwana
  220. Sub ShapesToNirwana()
  221. Dim n as Integer
  222. Dim oControl as Object
  223.     For n = 0 To oDrawPage.Count-1
  224.         oDrawPage(n).Position = GetPoint(-20, -10000)
  225.     Next n
  226. End Sub
  227.  
  228.  
  229. Function CalcUniqueContentName(BYVAL oContainer as Object, sBaseName as String) as String
  230. Dim nPostfix as Integer
  231. Dim sReturn as String
  232.     nPostfix = 2
  233.     sReturn = sBaseName
  234.  
  235.     while (oContainer.hasByName(sReturn))
  236.         sReturn = sBaseName & nPostfix
  237.         nPostfix = nPostfix + 1
  238.     Wend
  239.     CalcUniqueContentName = sReturn
  240. End Function
  241.  
  242.  
  243. Function CountItemsInArray(BigArray(), SearchItem)
  244. Dim i as Integer
  245. Dim MaxIndex as Integer
  246. Dim ResCount as Integer
  247.     ResCount = 0
  248.     MaxIndex = Ubound(BigArray())
  249.     For i = 0 To MaxIndex
  250.         If SearchItem = BigArray(i) Then
  251.             ResCount = ResCount + 1
  252.         End If
  253.     Next i
  254.     CountItemsInArray() = ResCount
  255. End Function
  256.  
  257.  
  258. Function GetDBHeight(oDBModel as Object)
  259.     If CurControlType = cImageControl Then
  260.         nDBHeight = 2000
  261.     Else
  262.         If CurFieldType = com.sun.star.sdbc.DataType.LONGVARCHAR Then
  263.             oDBModel.MultiLine = True
  264.             nDBHeight = nDBRefHeight * 4
  265.         Else
  266.             nDBHeight = nDBRefHeight
  267.         End If
  268.     End If
  269.     GetDBHeight() = nDBHeight
  270. End Function
  271.  
  272.  
  273. 'Sub ShowErrorMessage(bEndExecute as Boolean)
  274. '    If Err <> 0 Then    
  275. '        Msgbox(sMsgErrMsg, 16, GetProductName())
  276. '        Resume LOCERROR
  277. '        LOCERROR:        
  278. '        On Local Error Goto 0
  279. '        oDocument.UnlockControllers()
  280. '        ToggleWindow(True)
  281. '        If bEndExecute Then
  282. '            DlgFormDB.EndExecute()    
  283. '        End If
  284. '    End If
  285. 'End Sub</script:module>